Computers and computer software make up a very important part of modern life and business. In today's business environment, for any organization to stay competitive, it is imperative that it uses computers and software applications to manage data, customers, employees, finances, etc. Generally speaking, organizations use specialized application to use one or more of their various operations. For example, businesses use accounting software to manage their accounting, tax, payroll, and other accounting related functions, whereas customer relationship management (CRM) software is used to manage customer accounts, orders, etc. Most businesses implement their core enterprise applications such as enterprise resource planning (ERP) and CRM at different times, using products developed by different vendors.
Most of such business applications use multiple user interfaces (UIs), including graphical user interfaces (GUIs), on a multitude of platforms (desktop PC, a hand-held device, etc.), to interact with users. For example, a CRM application may use a UI to present customer data to a user, to receive inputs from a user that are to be saved in the customer data, etc. It is possible that a user of the CRM application, such as a customer service representative, may spend a lot of time working with such UI. Therefore, it is important that UIs are appealing and pleasant to work with as well as designed to efficiently interact with a user.
Generally speaking, UI's include a number of components such as toolbars, status bars, child windows, etc., all of varying shapes, textures, sizes, colors, and fonts of the text displayed. Throughout the technical development of UI's, the technical developers collaborate with the graphic designers, often part of a user experience team, on the development of UI's. One of the challenges of UI development is to ensure that properties of various components of the UI's meet the requirements of the designers from the user experience (UX) team.
In a typical UI development cycle, the UX team gives initial specifications to the developers. Throughout the development cycle of the UI, the UX team reviews the appearance, user experience, etc., of the UI at various points and provides further changes to the UI properties as per the result of their review. Subsequently, the UX team reviews the next version of the UI to see if it meets their revised requirement. Due to the time involved in getting reviews back and forth between the UX team and the development team, a typical UI development may involve several such revisions. Therefore, the development process may be quite inefficient, involving significant time and monetary overheads.